using Concurso.Clases;
using FunkeLab;

namespace ConcursoCV.UI.WebUserControls.Concurso
{
	using System;
	using System.Data;
	using System.Drawing;
	using System.Web;
	using System.Web.UI.WebControls;
	using System.Web.UI.HtmlControls;

	/// <summary>
	///		Summary description for ControladorCalificaciones.
	/// </summary>
	public class ControladorCalificaciones : System.Web.UI.UserControl
	{
		protected System.Web.UI.WebControls.Button btnVolver;
		protected WebUserControls.Concurso.ArbolCalificaciones ucArbolCalificaciones;
		protected WebUserControls.Concurso.ABMCalificaciones ucABMCalificaciones;
		protected WebUserControls.Concurso.AyudaCalificacion ucAyudaCalificacion;
		
		private const string pidListadoPostulantes = "008";
		protected System.Web.UI.WebControls.Label lblTitulo;
		private const char SEPARATOR = ':';

		private void Page_Load(object sender, System.EventArgs e)
		{
			if( !this.IsPostBack )
			{
				MostrarAyuda();
				this.ConcursoId = this.Request["concursoId"];
				if( this.Request["type"] != null )
					if ( (this.Request["type"] == "DOC") || ( this.Request["type"] == "CONSULTA"))
					{
						this.lblTitulo.Text = (this.Request["docenteId"] == null) ? "Mi CV" : "CV Docente";
						this.btnVolver.Visible = false;
					}						
			}
		}


		private void RedirigirAListadoPostulantes()
		{
			string url = "Default.aspx?pid=" + pidListadoPostulantes + "&concursoId=" + ConcursoId;
			Server.Transfer(url);
		}

		private void MostrarAyuda()
		{
			MostrarControles(false,true);
		}
		private void MostrarDetalle()
		{
			MostrarControles(true,false);
		}
		private void MostrarControles( bool bDetalle, bool bAyuda )
		{
			ucAyudaCalificacion.Visible = bAyuda;
			ucABMCalificaciones.Visible = bDetalle;			
		}
		private void ConstruirFormCalificaciones()
		{
			if( this.ucABMCalificaciones.AntecedenteId != null )
			{
				this.ucABMCalificaciones.ConstruirForm();
			}
		}

		#region - Properties -

		public string ConcursoId
		{
			get{ return (string) ViewState["_concursoId"];}
			set{ ViewState["_concursoId"] = value;}
		}

		#endregion - Properties -

		#region Web Form Designer generated code

		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: This call is required by the ASP.NET Web Form Designer.
			//
			InitializeComponent();
			MyInitializeComponent();
			base.OnInit(e);
		}
		private void MyInitializeComponent()
		{
			this.ucArbolCalificaciones.TreeViewNodeClick +=new EventHandler(ucArbolCalificaciones_TreeViewNodeClick);
			this.ucArbolCalificaciones.TreeViewNodeOnDemand +=new EventHandler(ucArbolCalificaciones_TreeViewNodeOnDemand);
			this.ucArbolCalificaciones.TreeViewOnNodeClose +=new EventHandler(ucArbolCalificaciones_TreeViewOnNodeClose);
		}
		/// <summary>
		///		Required method for Designer support - do not modify
		///		the contents of this method with the code editor.
		/// </summary>
		private void InitializeComponent()
		{
			this.btnVolver.Click += new System.EventHandler(this.btnVolver_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion

		private void btnVolver_Click(object sender, System.EventArgs e)
		{
			RedirigirAListadoPostulantes();
		}

		private void ucArbolCalificaciones_TreeViewNodeClick(object sender, EventArgs e)
		{
			MyTreeViewItem item = ((TreeViewEventArgs) e).Node;
			if(item != null)
			{					
				ucABMCalificaciones.AntecedenteId = item.Value.Split(SEPARATOR)[0];
				ucABMCalificaciones.ConstruirForm();
				MostrarDetalle();
				ucABMCalificaciones.VisiblePnlCalificacion(true);
			}
			else
			{
				ucABMCalificaciones.VisiblePnlCalificacion(false);
			}
		}

		private void ucArbolCalificaciones_TreeViewNodeOnDemand(object sender, EventArgs e)
		{
			this.ConstruirFormCalificaciones();
		}

		private void ucArbolCalificaciones_TreeViewOnNodeClose(object sender, EventArgs e)
		{
			this.ConstruirFormCalificaciones();
		}
	}
}
